#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
#define rep(i, a, b) for (int i = (a); i <= (b); i++)
#define per(i, a, b) for (int i = (a); i >= (b); i--)
#define endl '\n'
const int N = 105;
const double EPS = 1e-8;
const double E = 2.7182818284590452353602874713527;

int n;

int k, ep;
int x[N], y[N];
double dp[N][N];
double prob(double d, double r) {
  if (d + EPS <= r) return 1.0;
  return pow(E, 1.0 - d * d / (r * r));
}
bool check(double r) {
  dp[0][0] = 1.0;
  rep(i, 1, n) {
    double d = sqrt(x[i] * x[i] + y[i] * y[i]);
    double p1 = prob(d, r);
    double p2 = 1.0 - p1;
    dp[i][0] = dp[i - 1][0] * p2;
    rep(j, 1, i) dp[i][j] = dp[i - 1][j] * p2 + dp[i - 1][j - 1] * p1;
  }
  double ans = 0;
  rep(i, 0, k - 1) ans += dp[n][i];
  return ans * 1000 < ep;
}
void solve() {
  cin >> n;
  cin >> k >> ep;
  int x0, y0;
  cin >> x0 >> y0;
  rep(i, 1, n) {
    cin >> x[i] >> y[i];
    x[i] -= x0;
    y[i] -= y0;
  }
  double l = 0.0, r = 2000 * sqrt(2);
  while (l + EPS < r) {
    double mid = (l + r) / 2;
    if (check(mid))
      r = mid;
    else
      l = mid;
  }
  cout << fixed << setprecision(8) << l;
  return;
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int t = 1;
  while (t--) solve();
  return 0;
}